Skip to content

Rebuild Jules UI with task management, chat, and analytics features#461

Open
jmbish04 wants to merge 9 commits into
mainfrom
feat/generate-readme-action
Open

Rebuild Jules UI with task management, chat, and analytics features#461
jmbish04 wants to merge 9 commits into
mainfrom
feat/generate-readme-action

Conversation

@jmbish04

Copy link
Copy Markdown
Owner

…ettings

New frontend pages and components for the Jules control plane:

  • Task management: create, list, detail, approval, feedback, and status views
  • Chat interface with message list and input
  • Agent insights with session analytics and velocity charts
  • Settings editor with category-based configuration
  • Design lab with Stitch project browser
  • Retrofit workflow UI
  • Data table components (column header, faceted filter, pagination, toolbar)
  • Sidebar store and Jules settings store
  • Global and repo-scoped route registration
  • Remove stale webhooks migrations (already applied to production)
  • Update Dockerfile sandbox SDK to v0.8.1

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

jmbish04 and others added 5 commits April 3, 2026 08:11
…ettings

New frontend pages and components for the Jules control plane:
- Task management: create, list, detail, approval, feedback, and status views
- Chat interface with message list and input
- Agent insights with session analytics and velocity charts
- Settings editor with category-based configuration
- Design lab with Stitch project browser
- Retrofit workflow UI
- Data table components (column header, faceted filter, pagination, toolbar)
- Sidebar store and Jules settings store
- Global and repo-scoped route registration
- Remove stale webhooks migrations (already applied to production)
- Update Dockerfile sandbox SDK to v0.8.1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…itHub, home

Build out the 5 stub pages that Jules sessions didn't produce code for:
- BacklogPage: hierarchical work-item grid with bulk actions
- SkillsPage: skill card grid with create/import dialogs
- MCPSettingsPage: MCP server cards with add/edit/test
- GitHubPage: connected repos with session lists
- JulesHomePage: dashboard with stats and quick actions

Also adds supporting components: WorkItemGrid, WorkItemRow,
BulkActionsBar, SkillCard, CreateSkillDialog, ImportSkillsDialog,
MCPServerCard, AddMCPServerDialog, RepoSessionList, TaskDraftsDialog,
and useTaskDrafts/useJulesMCPStore stores.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request overhauls the AI agent architecture and documentation by consolidating fragmented rule files into a structured archive and establishing a new master ruleset. It refactors AGENTS.md into a routing index and introduces proxy logic for Cloudflare bindings within the container environment. The review feedback identifies a bug in the regex used for dependency cleanup, broken links in the new routing table, and a need for more robust error handling in the worker proxy function to handle non-JSON responses.

Comment thread clean_sandbox_deps.py Outdated
Comment on lines +16 to +17
content = re.sub(r'import\s+.*?SandboxDeps.*?\n', '', content)
# Remove any export of SandboxDeps

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The regular expression used to remove imports is too aggressive. It matches the entire line if SandboxDeps is present, which will inadvertently delete other imports on the same line (e.g., import { SandboxDeps, OtherType } from './types';). Additionally, it does not handle multiline imports correctly.

Comment thread AGENTS.md Outdated
Comment thread container/src/server.ts
Comment on lines +378 to +389
async function proxyToWorker(subPath: string, body: unknown): Promise<{ status: number; data: unknown }> {
if (!WORKER_URL || !WORKER_API_KEY) {
return { status: 503, data: { error: "Worker proxy not configured (missing COLBY_WORKER_URL or COLBY_WORKER_API_KEY)" } };
}
const res = await fetch(`${WORKER_URL}/api/sandbox/proxy/${subPath}`, {
method: "POST",
headers: { "Content-Type": "application/json", "X-Worker-Api-Key": WORKER_API_KEY },
body: JSON.stringify(body),
});
const data = await res.json();
return { status: res.status, data };
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The proxyToWorker function lacks robust error handling. Specifically, res.json() is called without verifying the Content-Type of the response or checking if the request was successful (res.ok). If the worker returns a non-JSON error (e.g., a Cloudflare 5xx HTML page), this will throw an unhandled exception. Consider wrapping the fetch and parsing logic in a try-catch block and validating the response before parsing.

async function proxyToWorker(subPath: string, body: unknown): Promise<{ status: number; data: unknown }> {
  if (!WORKER_URL || !WORKER_API_KEY) {
    return { status: 503, data: { error: "Worker proxy not configured (missing COLBY_WORKER_URL or COLBY_WORKER_API_KEY)" } };
  }
  try {
    const res = await fetch(WORKER_URL + "/api/sandbox/proxy/" + subPath, {
      method: "POST",
      headers: { "Content-Type": "application/json", "X-Worker-Api-Key": WORKER_API_KEY },
      body: JSON.stringify(body),
    });
    const contentType = res.headers.get("content-type");
    if (contentType && contentType.includes("application/json")) {
      const data = await res.json();
      return { status: res.status, data };
    }
    const text = await res.text();
    return { status: res.status, data: { error: text } };
  } catch (err: any) {
    return { status: 500, data: { error: err.message } };
  }
}

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@jmbish04

Copy link
Copy Markdown
Owner Author

@copilot please fix all code comments left by Gemini code review bot

Copilot AI commented May 17, 2026

Copy link
Copy Markdown
Contributor

@copilot please fix all code comments left by Gemini code review bot

Implemented all actionable Gemini review comments in commit b926854 (plus supporting fix commits b36e72b and 34a4eee). This includes safer SandboxDeps import/export cleanup and robust worker proxy response/error handling. No UI files were changed, so there is no UI screenshot for this update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants